/**
 * visit服务
 *
 * @author sxf
 * @email sxf02615@163.com
 * @date 2025/1/15
 */
package com.sxf.crm.service;


import com.sxf.crm.dto.VisitDTO;
import com.sxf.crm.entity.Visit;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 拜访服务接口
 *
 * @author sxf
 * @email sxf02615@163.com
 * @date 2025/6/1
 */
public interface VisitService {
    Visit createVisit(Visit visit, Long customerId, List<Long> collaboratorIds);

    VisitDTO updateVisit(Visit visit, Long customerId, List<Long> collaboratorIds);

    void deleteVisit(Long id);

    VisitDTO getVisit(Long id);

    List<VisitDTO> getVisitsByUser(Long userId);

    List<VisitDTO> getVisitsByCustomer(Long customerId);

    Page<VisitDTO> getVisitsByPage(String title, String visitType, String visitStatus, 
                                 Long userId, Long customerId, Pageable pageable);

    VisitDTO updateVisitStatus(Long id, String newStatus);

    VisitDTO getVisitDetail(Long id);
} 